package com.cleaningcloud.cld.mapper;

import java.util.List;
import com.cleaningcloud.cld.domain.CldMaterialApp;
import com.cleaningcloud.cld.domain.CldMaterialAppDetails;
import com.cleaningcloud.cld.domain.dto.CldMaterialAppDto;
import com.cleaningcloud.cld.domain.vo.CldMaterialAppVo;
import org.apache.ibatis.annotations.Param;

/**
 * 项目申请Mapper接口
 * 
 * @author cleaningcloud
 * @date 2024-10-28
 */
public interface CldMaterialAppMapper 
{
    /**
     * 查询项目申请
     * 
     * @param materialAppId 项目申请主键
     * @return 项目申请
     */
    CldMaterialAppVo selectCldMaterialAppByMaterialAppId(Long materialAppId);

    /**
     * 查询项目申请列表
     * 
     * @param cldMaterialApp 项目申请
     * @return 项目申请集合
     */
    List<CldMaterialAppVo> selectCldMaterialAppList(CldMaterialAppDto cldMaterialApp);

    /**
     * 新增项目申请
     * 
     * @param cldMaterialApp 项目申请
     * @return 结果
     */
    int insertCldMaterialApp(CldMaterialApp cldMaterialApp);


    /**
     * 修改项目申请
     * 
     * @param cldMaterialApp 项目申请
     * @return 结果
     */
    int updateCldMaterialApp(CldMaterialApp cldMaterialApp);

    /**
     * 删除项目申请
     * 
     * @param materialAppId 项目申请主键
     * @return 结果
     */
    int deleteCldMaterialAppByMaterialAppId(Long materialAppId);

    /**
     * 批量删除项目申请
     * 
     * @param materialAppIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteCldMaterialAppByMaterialAppIds(Long[] materialAppIds);


    /**
     * 批量新增项目申请明细
     * @param list
     */
    void batchInsertMaterialAppDetails(@Param("list") List<CldMaterialAppDetails> list);
}
